package com.youlu.campus.entity;

import com.youlu.campus.base.base.EntityBase;
import lombok.Data;
import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;
import java.util.List;

/**
 * 活动支付配置页
 */
@Data
@Document(collection = "payConfigPage")
public class PayConfigPage extends EntityBase {

    @Indexed(unique = true)
    private String activityId;
    private String activityName;
    //是否属于自有平台h5
    private Boolean platformSource;
    private String appId;
    private String appName;
    //领取证书介绍
    private String receiveCertificateDesc;
    //联系我们
    private String aboutDesc;
    //领取介绍
    private String receiveDesc;
    //证书介绍
    private String certificateDesc;

    private String wechatPayUrl;
    /**
     * V2版本收款链接
     */
    private String wechatPayV2Url;

    private List<PayButtonConfigPage> payButtonConfigList;

    private Boolean layer = Boolean.FALSE;

    private String layerUrl;
    /**
     * 邮费模版
     */
    private String postageTemplateId;
    /**
     * 邮费模版名称
     */
    @Transient
    private String postageTemplateName;

    private Boolean showReward = Boolean.FALSE;

    /**
     * 背景url-支付配置页头图
     */
    private String backGroundImageUrl;
    /**
     * 奖励值描述
     */
    private String rewardValueDesc;
    /**
     * 扩展值描述
     */
    private String extDesc;


    /**
     * 扩展值描述
     */
    private String extValue = "暂无证书";
    /**
     * 等级证书描述
     */
    private String caLevelDesc;
    /**
     * 等级证书默认值
     */
    private String caLevelDefaultValue = "暂无证书";

    private String title;
    /**
     * 副标题
     */
    private String subTitle;


    /**
     * 开启领取 true 开启 false不开启
     */
    private Boolean receiveCa = Boolean.FALSE;
    /**
     * 是否隐藏倒计时 true 开启 false不开启
     */
    private Boolean showCountDown = Boolean.FALSE;
    /**
     * 收款开始时间
     */
    private Date payStartTime;
    /**
     * 支付结束时间
     */
    private Date payEndTime;


    /**
     * 活动详情链接
     */
    private String activityDetailLink;

    /**
     * 个人信息颜色值
     */
    private String colorValueUserInfo;
    /**
     * 活动主题颜色值
     */
    private String themeColor;

    /**
     * 收款首页背景色
     */
    private String backgroundThemeColor;

    /**
     * 等级颜色
     */
    private String levelColor;

    /**
     * 倒计时颜色
     */
    private String countdownColor;

    /**
     * false 表示开启，true 表示关闭
     */
    private Boolean hideActivityDetailLink = Boolean.TRUE;

    /**
     * 电子版联系我们
     */
    private String digitalAboutDesc;
    /**
     * 广告弹窗
     */
    private String adPopups;

    /**
     * 发送模版消息备注信息
     */
    private String msgTemplateRemark;
    /**
     * 是否置顶
     */
    @Transient
    private Boolean onTop = Boolean.FALSE;

    /**
     * 限时扣减金额 单位分
     */
    private Integer deductionMoney;
    /**
     * 限时扣减时间 单位秒
     */
    private Integer deductionExpireTime;

    /**
     * 收款首页弹窗背景图
     */
    private String backgroundImgPopupUrl;
    /**
     * 是否现实广告
     */
    private Boolean showAdPopups = Boolean.TRUE;
    /**
     * 是否在收款显示投诉
     */
    private Boolean showPayComplaintButton = Boolean.TRUE;
    /**
     * 是否启用周期时间
     */
    private Boolean hasCycleTime = Boolean.FALSE;
    /**
     * 周期时长，单位秒
     */
    private Integer cycleTime;
    /**
     * 证书作用,富文本
     */
    private String caEffect;
    /**
     * 是否开启待领取
     * 1. 此开关是倒计时总控开关，此开关关闭，该下发页面全倒计时关闭；
     * 2. 此开关开启，该下发页面倒计时启用，不同模块的倒计时是否显示，
     * 由各自模块控制显隐，共用“倒计时周期 与 周期时长”
     */
    private Boolean openUnclaimed = Boolean.TRUE;
    /**
     * 是否开启头部倒计时
     * 1. 新增倒计时隐藏开关;
     * 2. 该开关默认开启，开启状态下，前端展示头部倒计时；
     * 3. 手动关闭开关，前端隐藏倒计时功能；
     */
    private Boolean openHeaderCountDown = Boolean.TRUE;
    /**
     * 是否显示用户信息,用户看板，名字、大学、积分、头像
     */
    private Boolean showUserInfo = Boolean.TRUE;
    /**
     * 是否显示商品推荐
     * 1. 该开关默认关闭，关闭状态下，前端不显示“商品推荐模块”，后端不显示“商品推荐模块”配置项；
     * <p>
     * 2.手动开启开关，前端显示“商品推荐模块”，后端展开“商品推荐模块”配置列表；
     */
    private Boolean openItemsRecommend = Boolean.TRUE;
    /**
     * 是否开启证书补贴
     */
    private Boolean openCaSubsidy = Boolean.FALSE;
    /**
     * 补贴门限
     */
    private Integer caSubsidyThreshold = 2;
    /**
     * 证书补贴费用
     */
    private Integer caSubsidyFee;
    /**
     * 证书补贴描述
     */
    private String caSubsidyDesc;
    /**
     * 前端配置
     */
    private String frontConfig;
    /**
     * 开始时间
     */
    private Date startTime;
    /**
     * 结束时间
     */
    private Date endTime;
    /**
     * 促销语
     */
    private String promotion;
    /**
     * 默认勾选分类数量，默认：1
     */
    private Integer choicedCateNum = 1;

}
